package com.kotlin.flong.base


fun main(args: Array<String>) {

    //嵌套函数
    fun say() {
        println("这个是一个嵌套函数")
    }

    //say() //调用内嵌套函数必须要调用方法才可以输出

    //匿名lambda表达式

    /*{
        println("这个是一个嵌套函数")
    }()*/

    //匿名lambda表达式
    {
        println("这个是一个嵌套函数")
    }.invoke()


    //10+20
    var result = { a: Int, b: Int -> a + b }.invoke(10, 20)

    println(result)


    var block1 = {
        println("这个是保持lambda表达式")
    }


    var block2: () -> Unit = {
        println("这个是保持lambda表达式")
    }


    block2()
    block2.invoke()


    //允许可空的函数变量类型
    var block3: (() -> Unit)? = null

    //block3()  //会编译报错

    block3?.invoke()


}



